TESTING PLAYBOOK

ABC DPT Module — Testing Playbook

Master directory verification workflows, proof generation, trade code management, and comprehensive testing strategy for the Directories, Proofs & Trades module

The Business

What Is DPT and Why Does ABC Care

The Directories, Proofs & Trades (DPT) module is a centralized interface within the Contacts system that enables Level 3 Chapter Staff to manage the annual directory verification cycle. At its core, DPT allows chapter staff to verify that company data is current and accurate before the chapter publishes its printed and digital directories.

Every year, ABC chapters need to ensure that member company information—contact details, designations, trade classifications, volume data—is up to date. The DPT module provides a structured workflow: a verification date range opens, companies verify their information (either through staff entry or via the member portal), the deadline passes, reports are generated, and verification emails are sent. This cycle repeats annually with a flag reset.

QA Focus

DPT is permission-gated (Level 3 Chapter Users only) and date-driven. Your tests must validate permission enforcement, date range logic, and the accuracy of flag-based verification status tracking across the entire lifecycle.

The Six Interface Sections

DPT is organized into six main functional areas, each handling a critical part of the verification workflow:

  • Manage Settings — Configure the verification date range (From and To dates), view real-time verified count and percentage, reset all verification flags, and manage three types of memos (portal instructions, email proof content, printed proof memo). This section is expanded by default.
  • Filter Companies — Apply advanced filters to narrow the company list by member type, company type, region, paid dues year, specific dates, STEP year, company name, and verification status. Provides precise control over which records appear in the view.
  • View Companies — Display filtered company results with checkboxes for bulk selection and a "Mark as Verified" bulk action button. This is where staff mark companies as verified in batch or one at a time.
  • Fields to Include in Outputs — Select which trade code options (CSI, NAICS, Directory Codes) and related fields (business license, designations, volume, contacts, etc.) appear in reports and emails. Includes radio-button-based trade code limitations for granular control.
  • Outputs — Reports — Generate one of 12 report types: 3 Directory formats (Excel Single, Excel Multiple, Printed 3-column), 3 Trades by Division formats (Excel, Printed 3-column, Simple List), 3 Trades by Detail formats (Excel, Printed 3-column, Simple List), and 3 Proof formats (Excel Single, Excel Contact Types, Printed).
  • Outputs — Email — Generate and send verification emails with company-specific data, preview/rehearsal mode, strong warnings if preview is skipped, and confirmation prompts before sending. Supports sending to different contact types.

Verification Lifecycle

The annual verification cycle follows a predictable flow that QA must validate end-to-end:

  • Cycle Setup — Chapter staff opens a verification cycle by setting the From and To dates in Manage Settings. The portal immediately shows a verification checkbox to member users during this active date range.
  • Active Verification Period — Companies verify via portal (checkbox + date/user recorded) or staff manually marks them as verified in the View Companies section. The verified count updates in real time.
  • Deadline Passes — Once the To date expires at 11:59:59 p.m., the portal checkbox becomes unavailable. Staff may conduct post-deadline audits (tracking changes after the through date) and send reminder emails.
  • Report & Email Generation — Staff configures Fields to Include in Outputs, selects a Report type or Email template, and generates outputs for records that verified. These outputs feed into the chapter's directory publication workflow.
  • Cycle Closure & Reset — Once the cycle is complete, staff resets all verification flags in Manage Settings. This clears the verified/unverified status for all companies and prepares the system for the next annual cycle.

How It Works

Manage Settings Workflow

Manage Settings is the control center. It's expanded by default and displays the verification date range, real-time statistics, memos, and reset functionality. This is where every verification cycle begins.

  • Set Verification Date Range — Enter "From" (inclusive at 12:01 a.m.) and "To" dates (inclusive at 11:59:59 p.m.). These dates control when the portal checkbox is visible to member users. Dates in the past are permitted; the To date is also known as the "Through Date."
  • Monitor Progress — View the count of companies that have verified (numerator) and total companies (denominator), plus a percentage. This refreshes as verification happens in real time.
  • Manage Memos — Three memo fields appear: Portal Instructions (shown in the portal to users), Email Proof (sent to companies via email when verification is requested), and Printed Proof (included in printed outputs). Each can be rich text.
  • Reset All Flags — A button clears ALL verification flags across all companies. This is destructive; no historical data is retained. Use with caution when cycling from one verification period to the next.

Filter & View Companies Workflow

Filtering narrows the dataset; viewing applies actions. Together they enable targeted verification management across large company rosters.

  • Apply Filters — Use dropdowns and text fields to filter by member type, company type, region, paid dues year, specific dates, STEP year, company name keyword, and current verification status (verified vs. unverified).
  • View Results — Filtered companies appear in a table with checkboxes in the leftmost column. Each row shows company name, member type, region, and verification status indicator.
  • Bulk Mark as Verified — Check one or more company rows, then click "Mark as Verified." This sets the verification flag, records the current date and logged-in user, and triggers any configured memo notifications.
  • Inline Verification — Click an individual company to open its detail view, where you can verify it directly without using bulk checkboxes.

Fields to Include in Outputs Workflow

This section determines what data appears in reports and emails. It includes preference set management for reusable field configurations.

  • Trade Code Options — Radio buttons (mutually exclusive) to select CSI, NAICS, or Directory Codes as the primary trade classification in outputs.
  • Trade Code Limitations — When CSI is selected, radio buttons appear for "CSI Division" and "CSI Subdivision" filtering. These are grayed out if CSI option is unchecked.
  • Demographics & Proof Fields — Checkboxes for business license, designations, volume data, contact counts, proof fields (e.g., "Check here if no changes"), and more.
  • Preference Sets — Save the current field selections as a named Preference Set, then load and reuse them across multiple output sessions. Preference sets do NOT persist across browser sessions; they're stored locally only.
QA ALERT

Preference sets are client-side only. If you save a set, close the browser, and reopen, the set should be gone. Cross-session persistence is a bug.

Email Generation Workflow

Sending verification emails is a high-stakes operation. The workflow includes preview/rehearsal, strong warnings, and confirmation steps.

  • Compose Email — Select a company or group of companies, choose which contact types to send to (default: primary contact if none selected), insert the Email Proof memo, and draft the message body.
  • Preview & Rehearsal — Before sending, preview emails to confirm content, recipient, subject line, and attachments. A warning appears if this step is skipped.
  • Confirmation Prompt — A modal confirms you're about to send to N contacts. If you proceed, emails are queued for delivery.
  • Send — Emails are sent immediately or queued based on system settings. Sent records are logged with timestamp and user.

Report Generation Workflow (12 Report Types)

DPT supports 12 distinct report formats grouped by purpose:

  • Directory Reports — Excel Single, Excel Multiple, and Printed 3-column. These show all verified companies formatted for the chapter directory.
  • Trades by Division — Excel, Printed 3-column, and Simple List. These group companies by CSI Division or NAICS category.
  • Trades by Detail — Excel, Printed 3-column, and Simple List. These break down by CSI Subdivision or NAICS subclass for deeper segmentation.
  • Proof Reports — Excel Single, Excel Contact Types, and Printed. These list companies that have verified and include proof field (e.g., "Check here if no changes").

QA must test each report type to confirm correct data inclusion, proper formatting, and field visibility based on the Fields to Include in Outputs selections.

Portal Verification (Member-Side)

During an active verification date range, member portal users see a verification checkbox and the Portal Instructions memo. When they check the box and submit:

  • The company's verification flag is set to TRUE
  • The current date and user ID are recorded
  • The checkbox becomes unavailable after the To date passes
  • Staff can view the recorded verification date/user in the View Companies section

Glossary

DPT
Directories, Proofs & Trades. A centralized module for managing annual directory verification cycles, trade code outputs, and verification email generation.
Verification Flag
A boolean (TRUE/FALSE) field on each company record indicating whether that company has verified its information in the current cycle. Not date-based; purely flag-based.
Through Date
Another name for the "To date" in the verification date range. The last date (inclusive at 11:59:59 p.m.) during which member portal users can verify. After this date, the portal checkbox is unavailable.
CSI
Construction Specifications Institute. A standardized trade classification system with Division and Subdivision levels. Used as an alternative to NAICS in trade code selection.
NAICS
North American Industry Classification System. A standardized trade classification system with broader categories than CSI. Used as an alternative trade code option in DPT outputs.
Directory Codes
ABC-specific trade codes used to categorize companies in directory listings. A third trade code option in DPT alongside CSI and NAICS.
Preference Set
A saved configuration of Fields to Include in Outputs. Can be named and reused within a session but does not persist across browser sessions.
Memo (Portal / Email / Printed)
Rich-text fields in Manage Settings. Portal Memo is shown to members during verification. Email Memo is included in verification emails. Printed Memo appears in printed proof outputs.
Do Not Print in Directory
A company flag that excludes that company from ALL directory and output reports, regardless of verification status. A hard exclusion rule.
Do Not Print Volume
A company flag that suppresses volume/revenue data in outputs but does NOT exclude the company from reports entirely.
Post-Deadline Audit
A tracking mechanism that records changes to company data made AFTER the Through Date has passed. Used to identify and audit late submissions or corrections.
Verification Date Range
The From and To dates set in Manage Settings that control when the portal verification checkbox is visible and active for member users.

Test Strategy

Core Testing Pillars

DPT testing spans six core domains. Each requires distinct test cases and validation approaches:

  • Manage Settings Validation — Test date range entry (past, present, future), From/To date inclusivity (12:01 a.m. to 11:59:59 p.m.), memo entry and display, real-time verified count updates, and reset flag behavior (ensure all flags clear, no data remains).
  • Filter Accuracy — Verify each filter (member type, company type, region, dues year, dates, STEP year, name keyword, verification status) returns correct company subsets. Test filter combinations and edge cases (no results, all results).
  • View Companies & Bulk Actions — Test checkbox selection, bulk "Mark as Verified" functionality, inline verification, and confirmation prompts. Validate that verification date and user are recorded correctly.
  • Trade Code Interactions — Test CSI selection/unchecking (Division and Subdivision radio buttons enable/disable correctly), NAICS selection, Directory Code selection, and mutual exclusivity of trade code options.
  • Report Generation (12 Types) — Generate each of the 12 report types and validate correct data inclusion, field visibility based on Fields to Include selections, formatting (Excel columns, printed 3-column layout), and correct trade code grouping.
  • Email Workflows — Test email composition, preview/rehearsal mode, skip-preview warning, confirmation prompt, successful send, recipient validation (contact type selection), memo inclusion, and delivery logging.

Portal Integration Testing

The member portal must correctly display and handle verification during active date ranges. Test scenarios:

  • Verification checkbox appears when current date/time falls within the From/To range
  • Portal Memo displays correctly above or adjacent to the checkbox
  • Checking the box and submitting sets the verification flag and records date/user
  • Checkbox becomes unavailable immediately after the To date passes at 11:59:59 p.m.
  • Portal users see their verification status correctly reflected (verified vs. unverified state)

Permission Enforcement

DPT is strictly Level 3 Chapter User access only. Test that:

  • Non-Level-3 users cannot access DPT (receive permission denied message)
  • Level 3 Chapter Users from other chapters cannot access another chapter's DPT instance
  • Level 3 Chapter Users in the correct chapter can fully access all sections

Data Integrity & State Testing

Test that DPT correctly maintains state across actions:

  • Verification flags persist correctly after setting and page refresh
  • Memo text is saved and retrieved without corruption
  • Preference sets are created, saved, and loaded within a session
  • Fields to Include selections carry over correctly when generating multiple reports
  • Bulk verification marks all selected companies (test with 1, 10, 100+ companies)
  • Reset clears all flags and does not affect other data (company names, contact info remain intact)

Business Rules & Gotchas

Click each rule to expand and see implications for testing:

Rule 1: Only Level 3 Chapter Users can access DPT

Access is strictly role-gated. Any non-Level-3 user attempting to access DPT receives a permission-denied error. This must be enforced at the page load and for all API calls.

Rule 2: Verification date range controls portal checkbox visibility

The portal checkbox is visible ONLY when the current date/time falls within the From and To dates. Before the From date or after the To date, the checkbox is hidden or disabled.

This is the primary mechanism controlling the annual cycle. Test by advancing system time or setting dates in the past/future.

Rule 3: From date inclusive at 12:01 a.m., To date inclusive at 11:59:59 p.m.

Exact time boundaries matter. Verification should be possible at 12:01 a.m. on the From date and up to 11:59:59 p.m. on the To date. Test edge cases by testing at 12:00 a.m. (should fail) and 11:59:59 p.m. (should succeed).

Rule 4: Verification status is flag-based, NOT date-based

A company is verified if the flag is TRUE, regardless of when it was verified. If a company verifies on Day 5 of a 10-day cycle, it remains verified even after the deadline. The verification date is recorded but does not control status.

Rule 5: "Do Not Print in Directory" excludes company from ALL results

If this flag is set, the company is completely hidden from all Directory, Trades, and Proof reports, regardless of verification status. It's a hard exclusion. Test that a company with this flag does not appear in any report type.

Rule 6: "Do Not Print Volume" suppresses volume data only

The company still appears in reports and is not excluded, but the volume/revenue fields are blank or suppressed. Test that company names, trade codes, and other data appear, but volume column is empty.

Rule 7: Trade code limitations are radio buttons (mutually exclusive)

Selecting "CSI Division" while "NAICS" is already selected should deselect NAICS automatically. Only one trade code option can be active at a time. Test all three combinations: CSI, NAICS, Directory Codes.

Rule 8: CSI-related limitations disable when CSI option is unchecked

If CSI is not selected, the "CSI Division" and "CSI Subdivision" radio buttons should be grayed out or disabled. Test by unchecking CSI and verifying the Division/Subdivision controls become inactive.

Rule 9: Preference sets don't persist across sessions

Save a Preference Set, close the browser completely (clear session), and reopen the DPT page. The saved set should be gone. Preference sets are client-side/session-only storage.

Rule 10: Dues categories show number + description only, no amounts

When filtering or displaying dues information, show the category (e.g., "Category 1", "Category 2") and description, but never display dollar amounts or payment schedules. Only Schedule 1 dues should display (ignore other schedules).

Rule 11: Default to primary contact for emails if no types designated

If no contact types are selected before sending an email, the email goes to the company's primary contact by default. Test by not selecting any contact types and verifying the primary contact receives the email.

Rule 12: Strong warning if preview skipped before sending emails

A modal warning must appear if the user tries to send an email without clicking "Preview". The warning should say something like "You did not preview this email. Are you sure you want to send without reviewing?" Test by attempting to send without previewing.

Rule 13: Reset clears ALL verification flags — no historical data retained

When the "Reset All Flags" button is clicked and confirmed, every company's verification flag is set to FALSE. The system does not keep a history of previous cycles. This is destructive and should require a confirmation modal.

Rule 14: Post-deadline audit tracks changes AFTER through date (Option 1)

If a company's data (name, trade codes, designations, etc.) is changed after the To date (Through Date), the system should log and flag this change for audit purposes. Test by verifying a company, waiting for the deadline to pass, then changing company data and checking for audit records.

Rule 15: Through date = To date of verification range

The "Through Date" term is interchangeable with the "To date" field. When you set the To date to "2026-05-31", the Through Date for post-deadline audit purposes is also "2026-05-31".

Rule 16: 12 report types: 3 Directory, 6 Trades, 3 Proof

Exactly 12 report types must be available. Test that all 12 are selectable and generate correctly: Directory (Excel Single, Excel Multiple, Printed 3-col), Trades by Division (Excel, Printed 3-col, Simple List), Trades by Detail (Excel, Printed 3-col, Simple List), Proof (Excel Single, Excel Contact Types, Printed).

Rule 17: Printed proofs include "Check here if no changes" text

When generating a Printed Proof report, each company entry should include text like "Check here if no changes" or "No changes required" so that printed copy recipients can quickly indicate whether they made edits.

Rule 18: Manage Settings section expanded by default, all others collapsed

When DPT first loads, Manage Settings is already expanded. All other sections (Filter Companies, View Companies, Fields to Include, Reports, Email) are collapsed. Test that the UI state matches this default on page load.

Scenario Thinking

Creative QA Scenarios to Test Edge Cases

These scenarios push DPT into corner cases that may reveal bugs or unexpected behavior. Build test cases around each:

Scenario 1: Verification date range is set in the past

Setup: Set a verification date range where both From and To dates are in the past (e.g., 2024-01-01 to 2024-06-30).

Expected Behavior: The portal checkbox should NOT be visible to members. Staff can still manually mark companies as verified in DPT. Reports and emails should still generate. No automatic verification should occur.

QA Action: Verify portal checkbox is hidden, staff verification still works, and system doesn't treat the past date range as "active."

Scenario 2: All flags reset mid-cycle with partially completed verifications

Setup: During an active verification cycle, 50 of 200 companies have verified. A staff member clicks "Reset All Flags."

Expected Behavior: All 200 companies' verification flags revert to FALSE. Verified count drops to 0. Staff receives a confirmation modal warning that this is destructive. No historical record remains.

QA Action: Test the confirmation modal, verify all flags clear, verify count resets to 0/200, and confirm no audit trail or backup exists for the 50 that were verified.

Scenario 3: CSI unchecked while user attempts to filter by CSI division

Setup: User unchecks the CSI trade code option. CSI Division and CSI Subdivision radio buttons disable. User tries to click on CSI Division (or it's already selected from a previous session state).

Expected Behavior: CSI Division radio button should be disabled/grayed out and not clickable. If somehow a division is still selected in the UI, it should not be applied to outputs (outputs ignore the selection if CSI is unchecked).

QA Action: Verify the disabled state visually, test that clicking the disabled radio fails silently, and generate a report to confirm CSI division filtering is not applied.

Scenario 4: Email sent without assigning a memo (Portal/Email/Printed)

Setup: Leave all three memo fields in Manage Settings blank, then compose and send a verification email.

Expected Behavior: The email should still send, but with empty memo sections (or a default "No instructions provided" message). Printed reports should also handle empty memos gracefully (no blank lines or formatting breaks).

QA Action: Send email with empty memos, inspect the received email and any generated reports, and confirm no formatting issues or errors occur.

Scenario 5: Portal user tries to verify outside the active date range

Setup: Set a verification date range (From: 2026-05-01, To: 2026-06-30). Test as a portal user on 2026-04-30 (before) and 2026-07-01 (after).

Expected Behavior: The verification checkbox should be completely hidden or disabled. Submitting a form with the checkbox manually enabled (via browser dev tools) should be rejected server-side with an error message.

QA Action: Verify the checkbox doesn't appear in the portal UI, test the form submission outside the date range, and confirm server-side validation rejects it.

Scenario 6: Same preference set name saved twice in a session

Setup: Select fields, save as "Q2 Template". Modify fields, save again as "Q2 Template".

Expected Behavior: The system should overwrite the previous "Q2 Template" with the new settings, or show a confirmation modal asking "Overwrite existing set?"

QA Action: Test both scenarios—overwrite and confirmation. Load the set and verify it contains the second configuration, not the first.

Scenario 7: "Do Not Print in Directory" company verifies via portal

Setup: A company has "Do Not Print in Directory" flag set. The verification date range is active. The company portal user checks the verification checkbox and submits.

Expected Behavior: The company's verification flag is set to TRUE (the company did verify). However, when you generate any report, the company should NOT appear because "Do Not Print in Directory" is a hard exclusion. The verified count should include this company (it verified), but reports exclude it.

QA Action: Verify the company via portal, check that verified count increases, then generate a report and confirm the company is not listed despite being verified.

Regression Checklists

After changes to DPT code, run these checklist items to catch regressions:

Manage Settings opens expanded; all other sections closed on page load
From date can be set to any date; validates as inclusive at 12:01 a.m.
To date can be set to any date; validates as inclusive at 11:59:59 p.m.
Verified count updates in real-time as companies verify (staff or portal)
Reset All Flags button clears all verification flags and shows confirmation modal
Portal Instructions memo displays in portal during active date range
Email Proof memo is included in verification emails
Printed Proof memo appears in printed report outputs
Filter by member type returns correct company subset
Filter by company type returns correct company subset
Filter by region returns correct company subset
Filter by paid dues year returns correct company subset
Filter by STEP year returns correct company subset
Filter by company name keyword returns correct company subset
Filter by verification status (verified vs. unverified) returns correct subset
Bulk "Mark as Verified" marks all selected companies and records date/user
CSI radio button selection enables CSI Division and CSI Subdivision
NAICS radio button selection disables CSI Division/Subdivision and vice versa
Directory Codes radio button selection disables CSI and NAICS options
Preference set saves and loads field selections within a session
Preference set does NOT persist after browser close and reopen
Directory Excel Single report generates with correct data and format
Directory Excel Multiple report generates with correct data and format
Directory Printed 3-column report generates with correct data and layout
Trades by Division Excel report groups correctly by CSI Division or NAICS category
Trades by Detail Excel report groups correctly by CSI Subdivision or NAICS subclass
Proof reports include verified companies and exclude unverified
Printed Proof reports include "Check here if no changes" text
"Do Not Print in Directory" companies excluded from all reports
"Do Not Print Volume" companies appear in reports but volume data suppressed
Email preview shows correct company data and recipient
Warning modal appears if preview is skipped before sending
Email defaults to primary contact if no contact types selected
Email confirmation modal shows correct count and recipients before send
Sent emails are logged with timestamp and user
Portal verification checkbox hidden before From date
Portal verification checkbox visible during active date range
Portal verification checkbox hidden after To date at 11:59:59 p.m.
Non-Level-3 users receive permission denied error when accessing DPT

Environment & Data Setup

Prerequisites for DPT Testing

To conduct comprehensive DPT testing, your test environment must be seeded with realistic data. Follow these setup instructions:

Test Data Requirements

  • Companies with Trade Codes — Create or use existing companies with CSI codes (Division and Subdivision levels), NAICS codes, and Directory Codes. Test data should include companies with all three code types so you can test trade code filtering and reporting.
  • Diverse Company Types — Include companies of different types (general contractor, subcontractor, supplier, vendor, etc.) to test filtering by company type and ensure reports correctly segment by type.
  • Geographic Spread — Create companies in multiple regions/chapters so you can test regional filtering and multi-region reports.
  • Member Types — Include companies with different member types (regular, associate, supplier, etc.) to validate member type filtering.
  • Varying Dues Status — Some companies should have paid dues for multiple years, some for current year only, some with gaps, to test dues-year filtering.
  • STEP Programs — Include companies enrolled in different STEP years to test STEP year filtering.
  • Designations — Some companies should have multiple designations (e.g., certified contractor, sustainability program member) so you can test designation fields in outputs.
  • Do Not Print Flags — Create at least 2–3 companies with "Do Not Print in Directory" flag and 2–3 with "Do Not Print Volume" flag to test exclusion logic.
  • Portal Users — Ensure test companies have associated portal user accounts so you can test portal verification workflows.

Environment Configuration

  • Active Verification Date Range — Set a verification date range in your test environment that includes today's date. For example, if testing on 2026-04-07, set From: 2026-04-01, To: 2026-06-30. This enables portal verification testing without manipulating system time.
  • Memo Content — Populate all three memo fields in Manage Settings with sample text: Portal Instructions (e.g., "Please verify your company information..."), Email Proof (e.g., "You have 30 days to respond..."), and Printed Proof (e.g., "Submit this form if no changes required...").
  • User Accounts — Create at least one Level 3 Chapter Staff test account so you can test DPT access and permission enforcement. Also create non-Level-3 accounts to test permission denial.
  • Time Zone Alignment — Ensure the test system's time zone is known and consistent. Date range validation (12:01 a.m. to 11:59:59 p.m.) depends on correct time zone interpretation.

Test Cycles and Snapshot Restoration

  • Snapshot Before Cycle — Before starting a full DPT testing cycle, create a database snapshot so you can restore it and re-run tests without accumulating data pollution.
  • Reset for Fresh Cycle — After completing a full test pass, reset all verification flags using the "Reset All Flags" button (this clears the cycle for the next test) or restore from snapshot.
  • Separate Report Testing — Generate reports in a safe test environment. Don't overwrite production report templates or outputs during testing.

Mocking & Integration Considerations

  • Email Delivery — Ensure test emails are captured by a test email service or sandbox mailbox, not sent to real addresses. Verify subject, body, memo inclusion, and recipient fields without sending spam.
  • Report Outputs — Excel and PDF generation should use test file storage (not production cloud storage). Verify file format, data accuracy, and formatting without polluting production archives.
  • Portal Rendering — Test portal verification in a staging environment, not production, to avoid confusing real members. Use test portal user accounts with test company data.
Setup Checklist

Before starting DPT testing, confirm: (1) 50+ test companies with varied types, regions, and codes are created; (2) Verification date range is active and includes today; (3) Memos are populated in Manage Settings; (4) Level 3 test account is available; (5) Email and report outputs route to test storage; (6) Database snapshot exists for easy restoration.